home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_a
/
compar.act
< prev
next >
Wrap
Text File
|
1995-04-22
|
1KB
|
71 lines
; Compare - Check if two files are
; the same.
; by Mark Rose - March, 1985
PROC CmpFile( BYTE f1, f2 )
BYTE c1, c2
CARD i,
nErrors
i = 0
nErrors = 0
; Until end-of-file, compare a char
; from each file and bump count of
; errors, if not the same.
DO
; Get one character from each file.
c1 = GetD( f1 )
c2 = GetD( f2 )
IF (EOF(f1)#0) OR (EOF(f2)#0) THEN
EXIT
FI
; If chars dont compare, inform
; user.
IF c1 # c2 THEN
nErrors ==+ 1
PrintF( "%H: %H %H%E", i, c1, c2 )
FI
i ==+ 1
OD
IF (EOF(f1)#0) AND (EOF(f2)=0) THEN
PrintE( "File 1 is shorter" )
ELSEIF (EOF(f1)=0) AND (EOF(f2)#0) THEN
PrintE( "File 2 is shorter" )
ELSE
IF nErrors = 0 THEN
PrintE( "Files compare exactly" )
ELSE
PrintE( "Files are the same length" )
FI
FI
RETURN
PROC Compare()
; Need strings for two file names.
BYTE ARRAY fn1( 30 ), fn2( 30 )
; Get the two input files
Print( "File 1: " )
InputS( fn1 )
Print( "File 2: " )
InputS( fn2 )
; and open them.
Close( 1 )
Open( 1, fn1, 4, 0 )
Close( 2 )
Open( 2, fn2, 4, 0 )
; Perform the compare
CmpFile( 1, 2 )
; and close up.
Close( 1 )
Close( 2 )
RETURN
#############################################################################################